package com.haoze.nurseapp.service;

import com.haoze.common.response.Result;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

public interface PatientService {

    /**
     * 获取住院病人信息简卡
     * @param page
     * @param pageSize
     * @param wardId
     * @return
     */
    Result getPatientInfoCards(Integer page, Integer pageSize, String wardId,String search);

    /**
     * 获取病人信息
     * @param qrCode
     * @return
     */
    Result getPatientInfo(@Param("qrCode") String qrCode);

    /**
     * 获取病情信息
     */
    Result conditionInfo(@Param("inpatNum") String inpatNum,String wardId);

    /**
     * 获取病区
     * @return
     */
    Result getDepts();

    /**
     * 获取病区
     * @return
     */
    Result getDepts2(String id,Integer page,Integer pageSize,String keyWords);


    /**
     * 获取检查列表
     * @param inpatNum 住院号
     * @param times
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result getExamList(String inpatNum,String times,String type,Integer pageNum,Integer pageSize);


    /**
     * 获取检查详情
     * @param examItemId
     * @return
     */
    Result getExamDetail(String examItemId,String reqNum,String inpatNum);

    /**
     * 获取检验列表
     * @param inpatNum 检验状态(空是全部，1，已出报告，2未出报告)
     * @param type 时间
     * @param times
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result getLabList(String inpatNum, String type, String times,Integer pageNum,Integer pageSize);

    /**
     * 获取检验详情
     * @param labItemId
     * @return
     */
    Result geLabDetail(String labItemId);

    /**
     * 获取病人信息，并计算病人年龄
     * @param inpatNum
     * @return
     */
    Map<String,String> getPatientInfoWithComputeAge(String inpatNum);

    Map<String,String> getPatientInfoNurse(String inpatNum,String type,String keyWords,String orgId,String circulationlLogId);

    Result queryExamAppointment(String dateTime,String type,String wardDeptId,String checkDeptId,String keyWords,Integer page,Integer pageSize);

    Result queryCheckDept(String dateTime,String type,String wardDeptId,String checkDeptId,String keyWords);

    Result queryExamAppointmentPrint(String dateTime,String type,String wardDeptId,String checkDeptId,String keyWords,String patexamreportdataIds,Integer page,Integer pageSize);

    Result queryDailyReport(String deptCode, String startDatetime, String endDatetime);

    /**
     * 获取病人信息 不包含his
     * @param inpatNum 住院号
     * @return
     */
    Result getPatientPeopleDetail(String inpatNum);

    /**
     * 获取病人信息 只包含his信息
     * @param inpatNum 住院号
     * @return
     */
    Result getPatientPeopleDetailFromHis(String inpatNum);
}
